package cmd

import (
	"context"
	"server-asset/boot"
	"server-asset/internal/consts"
	"server-asset/internal/logic"
	"server-asset/router"

	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/os/gcmd"
)

/**
 * 主程序入口
 */
var (
	Main = gcmd.Command{
		Name:  "main",
		Usage: "main",
		Brief: "start http server",
		Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {

			// 初始化数据库
			boot.InitDb(ctx)

			// 初始化定时任务
			logic.InitCron(ctx)

			// 启动 HTTP 服务
			startServer(ctx)

			return nil
		},
	}
)

/**
 * 启动服务
 */
func startServer(ctx context.Context) {
	s := g.Server()

	// 初始化路由
	router.Init(s)

	//# 设置静态路由
	s.SetServerRoot("resource/public")
	// 设置swaggerUI
	s.SetSwaggerUITemplate(consts.MySwaggerUITemplate)

	s.Run()
}
